﻿using System;
using System.Collections.Generic;

namespace VSTalk.Engine.Core.Feed
{
    public interface IMessageFeed
    {
        void Subscribe(IMessageConsumer consumer);
        void Unsubscribe(IMessageConsumer consumer);

        void RegisterProvider(IMessageProvider provider);
        void UnregisterProvider(IMessageProvider provider);

        IEnumerable<IMessage> GetMessages(Predicate<IMessage> predicate);
    }
}